package controlador;

import classes.TarefaAndamento;
import dao.TarefaAndamentoDao;
import erro.ConexaoException;
import erro.ConsultaException;
import erro.GeralException;
import java.util.ArrayList;

/**
 *
 * @author Roberta
 */
public class TarefaAndControlador {

    private TarefaAndamentoDao dao;

    public TarefaAndControlador() {

        this.dao = new TarefaAndamentoDao();
    }

    /**
     * 
     * @param ta = TarefaAndamento
     * @throws ConexaoException
     * @throws ConsultaException
     * @throws GeralException 
     */
    public void inserir(TarefaAndamento ta) throws ConexaoException, ConsultaException, GeralException {
        if (ta.getData() == null) {
            throw new GeralException("Digite a data no formatdo dd/mm/aaaa.");
        }
        if (ta.getObs().trim().equals("")) {
            throw new GeralException("Preencha o campo de observações.");

        } else {
            this.dao.inserir(ta);
        }
    }

    /**
     * 
     * @param ta = TarefaAndamento
     * @throws ConexaoException
     * @throws ConsultaException 
     */
    public void deletarAnd(TarefaAndamento ta) throws ConexaoException, ConsultaException {
        this.dao.deletarAnd(ta);
    }

    /**
     * 
     * @param ta = TarefaAndamento
     * @throws ConexaoException
     * @throws ConsultaException 
     */
    public void deletarAndamento(TarefaAndamento ta) throws ConexaoException, ConsultaException {
        this.dao.deletarAndamento(ta);
    }

    /**
     * 
     * @return
     * @throws ConexaoException
     * @throws ConsultaException 
     */
    public ArrayList<TarefaAndamento> listar() throws ConexaoException, ConsultaException {
        return (ArrayList<TarefaAndamento>) this.dao.listar();
    }

    /**
     * 
     * @param ta = TarefaAndamento
     * @throws ConexaoException
     * @throws ConsultaException
     * @throws GeralException 
     */
    public void alterar(TarefaAndamento ta) throws ConexaoException, ConsultaException, GeralException {
        if (ta.getData() == null) {
            throw new GeralException("Digite a data no formatdo dd/mm/aaaa.");
        }
        if (ta.getObs().trim().equals("")) {
            throw new GeralException("Preencha o campo de observações.");

        } else {
            this.dao.alterar(ta);
        }
    }

    /**
     * 
     * @param ta = TarefaAndamento
     * @return
     * @throws ConexaoException
     * @throws ConsultaException 
     */
    public TarefaAndamento pesquisar(TarefaAndamento ta) throws ConexaoException, ConsultaException {
        return (TarefaAndamento) this.dao.pesquisar(ta);
    }
}
